package io.awen.modules.sign.service;

import com.baomidou.mybatisplus.extension.service.IService;
import io.awen.common.utils.PageUtils;
import io.awen.modules.sign.entity.SignCarDispatchEntity;
import io.awen.modules.sign.entity.SignContainerAlarmEntity;
import io.awen.modules.sign.entity.SignContainerEntity;
import io.awen.modules.sign.qo.SignCarDispatchQo;

import java.util.List;

/**
 * 车辆调度表(用于用户主动调度,改变执行任务的车辆)
 *
 * @author liu.wen
 * @email liu.wen@qq.com
 * @date 2022-08-10 00:47:08
 */
public interface SignCarDispatchService extends IService<SignCarDispatchEntity> {

    PageUtils queryPage(SignCarDispatchQo qo);

    /**
     * 自动调度
     * @param container
     * @param alarm
     */
    void autoDispatch(SignContainerEntity container, SignContainerAlarmEntity alarm);

    /**
     * 手动调度
     * @param dispatch
     */
    void manualDispatch(SignCarDispatchEntity dispatch);

    List<SignCarDispatchEntity> waitManualList(SignCarDispatchQo qo);

    int total(SignCarDispatchQo qo);

    Double weightTotal(SignCarDispatchQo qo);


}

